package com.zf.canal.config;

import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
 * canal的连接的属性配置
 * @author Zhou Feng
 */
@Data
@Component
public class CanalConnectProperties {
    /**
     * canal服务的ip
     */
    @Value("${canal.config.host:127.0.0.1}")
    private String host;
    /**
     * canal服务的端口
     */
    @Value("${canal.config.port:11111}")
    private Integer port;
    /**
     * canal服务的实例名称
     */
    @Value("${canal.config.destination:example}")
    private String destination;
    /**
     * canal服务的访问用户名，默认canal服务没有用户名和密码，所以可以不用配置
     */
    @Value("${canal.config.username:}")
    private String username;
    /**
     * canal服务的访问用户名，默认canal服务没有用户名和密码，所以可以不用配置
     */
    @Value("${canal.config.password:}")
    private String password;

    /**
     * 每次从canal拉取多少条binlog，默认为500
     */
    @Value("${canal.config.batch-fetch-size:500}")
    private Integer batchFetchSize;

    /**
     * 订阅哪些数据库的哪些表的变化，正则表达式，多个表达式用 "," 分隔;
     * 如果是 java 代码里写写正则，则需要使用 \\ 表示 \；
     * 如果是在 properties 文件写正则，则需要使用 \\ 表示 \；
     * 如果在 yml 写正则直接用 \ 可以，不需要转义
      */
    @Value("${canal.config.filter-regex:}")
    private String filterRegex;

}
